home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Gekikoh Dennoh Club 1
/
Gekikoh Dennoh Club Vol. 1 (Japan).7z
/
Gekikoh Dennoh Club Vol. 1 (Japan) (Track 1).bin
/
tools
/
cdc
/
src
/
cdrd.s
< prev
next >
Wrap
Text File
|
1997-02-18
|
27KB
|
1,508 lines
NoCdDisp:
.dc.b ' 【CDC】 (c)TNB製作所 ',0
.even
JcBxDisp: *012345678901234567890123456789012345678
* .dc.b ' Juke Box【CDC】 ',0
.dc.b ' Juke Box★CDC ',0
.even
VN_LR: .dc.b ' ------- ',0
.even
DrawLeds:*---------------------------------------
*
* 表示用
*
tst.w _DisMode *0;非表示 1;表示 2;Small表示
bne @f
rts
@@: move.w $00e8002a,-(sp)
clr.w $00e8002a
lea _LEDBUF(pc),a0
movea.l _DRAWADDS(pc),a1
movea.l a1,a2
adda.l #$20000,a1 *プレーン4
moveq #$FF,d1
moveq #10-1,d0
@@:
move.b (a0)+,(a1)
move.b (a0)+,$80(a1)
move.b (a0)+,$80*2(a1)
move.b (a0)+,$80*3(a1)
move.b (a0)+,$80*4(a1)
move.b (a0)+,$80*5(a1)
move.b (a0)+,$80*6(a1)
move.b (a0)+,$80*7(a1)
move.b (a0)+,$80*8(a1)
move.b (a0)+,$80*9(a1)
move.b (a0)+,$80*10(a1)
move.b (a0)+,$80*11(a1)
move.b (a0)+,$80*12(a1)
move.b (a0)+,$80*13(a1)
move.b (a0)+,$80*14(a1)
move.b (a0)+,$80*15(a1)
*move.b d1,(a2)
move.b d1,$80(a2)
move.b d1,$80*2(a2)
move.b d1,$80*3(a2)
move.b d1,$80*4(a2)
move.b d1,$80*5(a2)
move.b d1,$80*6(a2)
move.b d1,$80*7(a2)
move.b d1,$80*8(a2)
move.b d1,$80*9(a2)
move.b d1,$80*10(a2)
move.b d1,$80*11(a2)
move.b d1,$80*12(a2)
move.b d1,$80*13(a2)
move.b d1,$80*14(a2)
move.b d1,$80*15(a2)
move.b d1,(a2)+
addq.l #1,a1
dbra d0,@b
cmpi.w #2,_DisMode *0;非表示 1;表示 2;Small表示
beq 1f
addq.l #1,a1
addq.l #1,a2
moveq #36-1,d0
@@:
move.b (a0)+,(a1)
move.b (a0)+,$80(a1)
move.b (a0)+,$80*2(a1)
move.b (a0)+,$80*3(a1)
move.b (a0)+,$80*4(a1)
move.b (a0)+,$80*5(a1)
move.b (a0)+,$80*6(a1)
move.b (a0)+,$80*7(a1)
move.b (a0)+,$80*8(a1)
move.b (a0)+,$80*9(a1)
move.b (a0)+,$80*10(a1)
move.b (a0)+,$80*11(a1)
move.b (a0)+,$80*12(a1)
move.b (a0)+,$80*13(a1)
move.b (a0)+,$80*14(a1)
move.b (a0)+,$80*15(a1)
*move.b d1,(a2)
move.b d1,$80(a2)
move.b d1,$80*2(a2)
move.b d1,$80*3(a2)
move.b d1,$80*4(a2)
move.b d1,$80*5(a2)
move.b d1,$80*6(a2)
move.b d1,$80*7(a2)
move.b d1,$80*8(a2)
move.b d1,$80*9(a2)
move.b d1,$80*10(a2)
move.b d1,$80*11(a2)
move.b d1,$80*12(a2)
move.b d1,$80*13(a2)
move.b d1,$80*14(a2)
move.b d1,$80*15(a2)
move.b d1,(a2)+
addq.l #1,a1
dbra d0,@b
1:
move.w (sp)+,$00e8002a
rts
KillLeds:*---------------------------------------
*
* 消し用
*
tst.w _DisMode *0;非表示 1;表示 2;Small表示
bne @f
rts
@@: move.w $00e8002a,-(sp)
clr.w $00e8002a
movea.l _DRAWADDS(pc),a1
movea.l a1,a2
adda.l #$20000,a1 *プレーン4
moveq #0,d1
moveq #10-1,d0
@@:
*move.b d1,(a1)
move.b d1,$80(a1)
move.b d1,$80*2(a1)
move.b d1,$80*3(a1)
move.b d1,$80*4(a1)
move.b d1,$80*5(a1)
move.b d1,$80*6(a1)
move.b d1,$80*7(a1)
move.b d1,$80*8(a1)
move.b d1,$80*9(a1)
move.b d1,$80*10(a1)
move.b d1,$80*11(a1)
move.b d1,$80*12(a1)
move.b d1,$80*13(a1)
move.b d1,$80*14(a1)
move.b d1,$80*15(a1)
*move.b d1,(a2)
move.b d1,$80(a2)
move.b d1,$80*2(a2)
move.b d1,$80*3(a2)
move.b d1,$80*4(a2)
move.b d1,$80*5(a2)
move.b d1,$80*6(a2)
move.b d1,$80*7(a2)
move.b d1,$80*8(a2)
move.b d1,$80*9(a2)
move.b d1,$80*10(a2)
move.b d1,$80*11(a2)
move.b d1,$80*12(a2)
move.b d1,$80*13(a2)
move.b d1,$80*14(a2)
move.b d1,$80*15(a2)
move.b d1,(a1)+
move.b d1,(a2)+
dbra d0,@b
addq.l #1,a1
addq.l #1,a2
moveq #36-1,d0
@@:
*move.b d1,(a1)
move.b d1,$80(a1)
move.b d1,$80*2(a1)
move.b d1,$80*3(a1)
move.b d1,$80*4(a1)
move.b d1,$80*5(a1)
move.b d1,$80*6(a1)
move.b d1,$80*7(a1)
move.b d1,$80*8(a1)
move.b d1,$80*9(a1)
move.b d1,$80*10(a1)
move.b d1,$80*11(a1)
move.b d1,$80*12(a1)
move.b d1,$80*13(a1)
move.b d1,$80*14(a1)
move.b d1,$80*15(a1)
*move.b d1,(a2)
move.b d1,$80(a2)
move.b d1,$80*2(a2)
move.b d1,$80*3(a2)
move.b d1,$80*4(a2)
move.b d1,$80*5(a2)
move.b d1,$80*6(a2)
move.b d1,$80*7(a2)
move.b d1,$80*8(a2)
move.b d1,$80*9(a2)
move.b d1,$80*10(a2)
move.b d1,$80*11(a2)
move.b d1,$80*12(a2)
move.b d1,$80*13(a2)
move.b d1,$80*14(a2)
move.b d1,$80*15(a2)
move.b d1,(a1)+
move.b d1,(a2)+
dbra d0,@b
move.w (sp)+,$00e8002a
rts
_B_KLE_M:*----------------------------------------
*
* メモリング用表示
*
clr.w _DisSuuzi10 * LED用数字クリア
bsr FncBarC
bsr FncBarM
*bsr FncBar
bsr FnkBerChk
beq @f
bsr DrawLeds
@@:
*move.w #1,_LEDVMOD
clr.w _LEDVMOD
moveq #0,d0
rts
_B_KLE_D2:*----------------------------------------
*
* LEDVMODをチェック&直接CDをチェックし表示
*
tst.w _LEDVMOD
beq _B_KLE_D
rts
_B_KLE_D:*----------------------------------------
*
* 直接CDをチェックし表示
*
move.w #-1,_MemPtV *MEM確認表示用メモリポインタ
clr.w _DisSuuzi10 * LED用数字クリア
bsr FncBarC
bsr FncBar2
bsr FncBar
bsr FnkBerChk
beq @f
bsr DrawLeds
@@:
clr.w _LEDVMOD
moveq #0,d0
rts
_B_KLE_H:*----------------------------------------
*
* [HOME]キー用MAX表示
*
move.w #-1,_MemPtV *MEM確認表示用メモリポインタ
clr.w _DisSuuzi10 * LED用数字クリア
bsr FncBarC
bsr FncBar3
*bsr FncBar
bsr FnkBerChk
beq @f
bsr DrawLeds
@@:
clr.w _LEDVMOD
moveq #0,d0
rts
_B_KLE_K:*----------------------------------------
*
* 数値入力時
*
move.w #-1,_MemPtV *確認表示用メモリポインタ
bsr FncBarC
bsr FncBarK
*bsr FncBar
bsr FnkBerChk
beq @f
bsr DrawLeds
@@:
move.w #1,_LEDVMOD
moveq #0,d0
rts
_B_KLE_S:*----------------------------------------
*
* シーク用表示
* d0=MSF
* d1=向き 0:rew 1;ff
*
move.w #-1,_MemPtV *MEM確認表示用メモリポインタ
clr.w _DisSuuzi10 * LED用数字クリア
move.l d1,-(sp)
move.l d0,-(sp)
bsr FncBarC
move.l (sp)+,d0
bsr FncBarS
bsr FncBar
andi.l #$FFFFFFE0,_Ledflg *LEDその他の状態
ori.l #%10000,_Ledflg *LEDその他の状態
lea LedREW(pc),a1
move.l (sp)+,d1
beq @f
lea LedFF(pc),a1
ori.l #%01000,_Ledflg *LEDその他の状態
@@: lea _LEDBUF(pc),a0
*bsr SetLedPat
move.l (a1)+,(a0)+
move.l (a1),(a0)
bsr FnkBerChk
beq @f
bsr DrawLeds
@@:
move.w #1,_LEDVMOD
moveq #0,d1
rts
_B_KLE_LD:*----------------------------------------
*
* CDチェック中
*
bsr FncBarC
clr.b _CdName
clr.l -(sp)
pea LoadDisp(pc)
bsr _SetNameLed
addq.l #8,sp
bsr FnkBerChk
beq @f
bsr DrawLeds
@@:
clr.w _LEDVMOD
moveq #0,d0
rts
LoadDisp:
.dc.b 'NOW LOADING',0
.even
_B_KLE_V:*----------------------------------------
*
* ボリュームキー用表示
*
move.w #-1,_MemPtV *MEM確認表示用メモリポインタ
clr.w _DisSuuzi10 * LED用数字クリア
bsr FncBarC
bsr FncBarV
*bsr FncBar
bsr FnkBerChk
beq @f
bsr DrawLeds
@@:
clr.w _LEDVMOD
moveq #0,d0
rts
FnkBerChk:*----------------------------------------
*
*bne 表示出来る
*beq 表示出来ない
*
tst.w _CdcMode *0:停止中
bne @f
moveq #0,d0
rts
@@:
tst.w _DisMode *0;非表示 1;表示 2;Small表示
bne @f
moveq #0,d0
rts
@@:
btst.b #5,$E82601 *TEXT 表示オン?!
bne @f
moveq #0,d0
rts
@@:
* move.w $E82200+8*2,d0 *TEXT カラーチェック 0なら
* bne @f
* moveq #0,d0
* rts
*@@:
tst.w _DisForce * 0 ; ノーマル 1 ; テキストを使っていても表示させる!!
bne @f
moveq #1,d1
moveq #-1,d2
*IOCS _TGUSEMD
movea.l $400+_TGUSEMD*4,a0
jsr (a0)
cmpi.w #2,d0
rts
@@:
moveq #1,d1
moveq #-1,d2
*IOCS _TGUSEMD
movea.l $400+_TGUSEMD*4,a0
jsr (a0)
cmpi.w #2,d0
beq @f
clr.w _DisForce * 0 ; ノーマル 1 ; テキストを使っていても表示させる!!
@@: moveq #-1,d0
rts
FncBarC:*-------------------------------------------------
*
* ファンクバー表示 クリア
*
****パッファクリア
lea _LEDBUF(pc),a0
moveq #-1,d1
move.w #(10*16)/4/2-1,d0
@@: move.l d1,(a0)+
move.l d1,(a0)+
dbra d0,@b
clr.l _Ledprg *LED数値 プログラムナンバー
clr.l _Ledflg *LEDその他の状態
clr.l _Ledtim
rts
*_FncBarC:*--------------
* lea _NAMEBUF(pc),a0
* moveq #0,d1
* move.w #(40*16)/4/4-1,d0
*@@: move.l d1,(a0)+
* move.l d1,(a0)+
* move.l d1,(a0)+
* move.l d1,(a0)+
* dbra d0,@b
* move.l d0,_SetNameAdd *clr
* rts
FncBar:*-------------------------------------------------
*
* ファンクバー表示 基本部
*
****左上 LED
move.w _TrkNo,d0
beq FB_L1
*演奏中?
lea LedPlay(pc),a1
andi.l #$FFFFFFE0,_Ledflg *LEDその他の状態
ori.l #%00010,_Ledflg *LEDその他の状態
move.w _PauseMode(pc),d0 *0:特に 1:ポーズ中
beq FB_L2
lea LedPause(pc),a1
andi.l #$FFFFFFE0,_Ledflg *LEDその他の状態
ori.l #%00100,_Ledflg *LEDその他の状態
bra FB_L2
FB_L1:
lea LedStop(pc),a1
tst.w _DtTrak
bpl @f
lea LedNoAudio(pc),a1
@@: andi.l #$FFFFFFE0,_Ledflg *LEDその他の状態
ori.l #%00001,_Ledflg *LEDその他の状態
FB_L2:
lea _LEDBUF(pc),a0
*bsr SetLedPat
move.l (a1)+,(a0)+
move.l (a1),(a0)
****左下 LED
move.w _AutoMode(pc),d0 *0:ノーマル 1:オート
beq @f
lea LedLoop(pc),a1
ori.l #%01_00000,_Ledflg *LEDその他の状態
bra FB_L3
@@: move.w _ReptMode(pc),d0 *0:ノーマル 1:リピート
beq @f
lea LedRept(pc),a1
ori.l #%10_00000,_Ledflg *LEDその他の状態
FB_L3: lea _LEDBUF+8(pc),a0
*bsr SetLedPat
move.l (a1)+,(a0)+
move.l (a1),(a0)
@@:
****右上 LED
move.w _MemLong(pc),d0 *メモリながさ 0以外ならMEMORY
beq @f
ori.l #%1_0_00_00000,_Ledflg *LEDその他の状態
lea LedMem(pc),a1
lea _LEDBUF+9*16(pc),a0
*bsr SetLedPat
move.l (a1)+,(a0)+
move.l (a1),(a0)
@@:
****右下 LED
move.w _RndMode(pc),d0 *0:ノーマル 1:ランダム
beq @f
ori.l #%0_1_00_00000,_Ledflg *LEDその他の状態
lea LedRand(pc),a1
bra FB_L4
@@: move.w _BgmMode(pc),d0 *0:ノーマル 1:BGM
beq @f
ori.l #%10_0_00_00000,_Ledflg *LEDその他の状態
lea LedBgm(pc),a1
FB_L4: lea _LEDBUF+9*16+8(pc),a0
*bsr SetLedPat
move.l (a1)+,(a0)+
move.l (a1),(a0)
@@:
****左上横 LED
lea _LEDBUF+1*16(pc),a0
move.w _LEDTMRV,d0
beq FB_L5
subq.w #1,d0
bne @f
**リバース
lea LedRev(pc),a1
*bsr SetLedPat
move.l (a1)+,(a0)+
move.l (a1),(a0)
bra FB_L5
@@:
subq.w #1,d0
bne @f
**トータル
lea LedTot(pc),a1
*bsr SetLedPat
move.l (a1)+,(a0)+
move.l (a1),(a0)
bra FB_L5
@@:
**トータルリバース
lea LedTotRev(pc),a1
*bsr SetLedPat
move.l (a1)+,(a0)+
move.l (a1),(a0)
FB_L5:
move.w _LUN_MAX,d0 *LUN_MAXは?
beq FB_L6
lea _LEDBUF+2*16(pc),a1
tst.w _JukeBox
bne @f
move.w _SCSI_LUN__,d0 *LUNは?
move.w d0,d1
addi.w #'1',d1
bsr SetQurtFontR
bra FB_L6
@@: moveq #'J',d1
bsr SetQurtFontR
FB_L6:
**** BANK ID?
tst.w _SCSI_IDSW
beq @f
lea _LEDBUF+1*16(pc),a0
andi.b #$80,(a0) * アッパーバー
@@:
rts
FncBar2:*-------------------------------------------------
*
* ファンクバー表示2
* 演奏中なら表示
*
tst.w _CDIN
bne @f
bra CdcTitle_
@@:
move.w _TrkNo(pc),d0
bne FB2_L1
FB2_L2: *----------------演奏していない
moveq #0,d0
moveq #0,d6
bsr ViewName
move.l _CdTrak(pc),d0
bsr SuziLed *数字
move.l _CdLong(pc),d0
bsr SuziLed3
lea _LEDBUF+3*16(pc),a1
moveq #'M',d1
bsr SetQurtFontR
moveq #'A',d1
bsr SetQurtFontR
moveq #'X',d1
bsr SetQurtFontR
moveq #'=',d1
bra SetQurtFontR
*rts
FB2_L1: *---------------------演奏中
*数字表示
move.l _plyinf+4,d0 *plyinf.track_no;
bsr SuziLed *数字
move.l _plyinf+8,d0 *plyinf.time;
bsr SuziLed4 *
*0.5sの点表示
move.w _KeyTDCT,d0
cmpi.w #80,d0 *本当は100でいいのだがなんとなく...
bcc @f
move.w SL4_tim,d0 *plyinf.time;
cmpi.b #75/2,d0 *FREAMのハーフ
bcc @f
moveq #'.',d1
bsr SetQurtFontR
@@:
move.l _plyinf+4,d0 *plyinf.track_no;
move.l _plyinf+8,d6 *plyinf.time;
bsr ViewName
move.w _MemLong(pc),d0 *メモリながさ 0以外ならMEMORY表示
beq @f
moveq #0,d0
move.w _MemPt(pc),d0
addq.w #1,d0
beq @f
bsr SuziLed2
@@:
rts
FncBar3:*-------------------------------------------------
*
* ファンクバー表示3
* 総曲数とCDタイトル表示
*
tst.w _CDIN *0:CDは入っていない 1:入っている
bne @f
bra CdcTitle_
rts
@@:
move.l #-1,_Ledprg
moveq #0,d0
moveq #0,d6
bsr ViewName
move.l _CdTrak(pc),d0
bsr SuziLed *数字
move.l _CdLong(pc),d0
bsr SuziLed3
lea _LEDBUF+3*16(pc),a1
moveq #'M',d1
bsr SetQurtFontR
moveq #'A',d1
bsr SetQurtFontR
moveq #'X',d1
bsr SetQurtFontR
moveq #'=',d1
bra SetQurtFontR
*rts
FncBarK:*-------------------------------------------------
*
* ファンクバー表示 input
* キー入力時用
*
move.l #-2,_Ledprg
bsr _DisSuuziCalc
move.l d0,-(sp)
bsr SuziLed *数字
lea _LEDBUF+3*16(pc),a1
moveq #'I',d1
bsr SetQurtFontR
moveq #'N',d1
bsr SetQurtFontR
moveq #'P',d1
bsr SetQurtFontR
moveq #'=',d1
bsr SetQurtFontR
*bsr CdTrkMax
move.l _CdTrak(pc),d0
move.l (sp)+,d1
bne @f
clr.l -(sp)
pea FBK_nul(pc)
bsr _SetNameLed
addq.l #8,sp
rts
@@: cmp.l d0,d1
bls @f
clr.l -(sp)
pea FBK_nul(pc)
bsr _SetNameLed
addq.l #8,sp
rts
@@: move.l d1,-(sp)
move.l d1,d0
add.l d0,d0
add.l d0,d0
movea.l _pListLong,a0 **ながさ時間
move.l (a0,d0.l),d0
bsr SuziLed3
move.l (sp)+,d0
moveq #0,d6
bra ViewName
*rts
FBK_nul:
.dc.b 0,0
FncBarM:*-------------------------------------------------
*
* ファンクバー表示 memory
* メムビュー
*
move.w _MemLong(pc),d0 *メモリながさ 0以外ならMEMORY
bne @f
rts
@@: moveq #0,d0
move.w _MemPtV(pc),d0
bpl @f
rts
@@:
addq.w #1,d0
bsr SuziLed2 *数字
move.w _MemPtV(pc),d0
lea _MemSock(pc),a1
move.b 0(a1,d0.w),d0
andi.l #$00FF,d0
move.l d0,-(sp)
bsr SuziLed *数字
move.l (sp),d0
add.l d0,d0
add.l d0,d0
movea.l _pListLong,a0 **ながさ時間
move.l (a0,d0.l),d0
bsr SuziLed3
move.l (sp)+,d0
moveq #0,d6
bra ViewName
*rts
FncBarS:*-------------------------------------------------
*
* ファンクバー表示 SEEK中
* d0=表示MSF
*
move.l d0,d7
tst.w _CDIN
bne @f
bra CdcTitle_
@@:
moveq #0,d0
move.w _TrkNo(pc),d0
bsr SuziLed *数字
move.l d7,d0
bsr SuziLed4
FBS_L3:
moveq #0,d0
move.w _TrkNo(pc),d0
move.l d7,d6
bsr ViewName
move.w _MemLong(pc),d0 *メモリながさ 0以外ならMEMORY表示
beq @f
moveq #0,d0
move.w _MemPt(pc),d0
addq.w #1,d0
beq @f
bsr SuziLed2
@@:
rts
*SetPtimeRev:
* *-------------------------------------------------
* * タイム リバース
* *
* rts
FncBarV:*-------------------------------------------------
*
* ファンクバー表示Vol
* ボリューム表示
*
*bsr FncBar2
*bsr FncBarC
move.l #-3,_Ledprg
moveq #0,d0
move.w _Volum,d0
divu #5,d0
andi.l #$0000_FFFF,d0
bsr SuziLed *数字
lea _LEDBUF+3*16(pc),a1
moveq #'V',d1
bsr SetQurtFontR
moveq #'O',d1
bsr SetQurtFontR
moveq #'L',d1
bsr SetQurtFontR
moveq #'=',d1
bra SetQurtFontR
*rts
SuziLed:*-------------------------------------------------
*
* 数字表示
* d0=数字
*
move.l d0,_Ledtrk
move.l d0,d1
cmpi.l #100,d1
bcc @f
*======99まで
divu #10,d1 * 1の位 : 10の位
or.l #$00300030,d1
lea _LEDBUF+7*16(pc),a1
bsr SetHanFontR
swap d1
bra SetHanFontR
@@: *======100~
lea _LEDBUF+7*16(pc),a1
divu #100,d1 * 100の位
lea LedS0H(pc),a0
lsl.w #4,d1
adda.w d1,a0
move.l (a0)+,(a1)+
move.l (a0)+,(a1)+
move.l (a0)+,(a1)+
move.l (a0)+,(a1)+
lea _LEDBUF+7*16(pc),a1
swap d1
andi.l #$0000FFFF,d1
divu #10,d1 * 1の位 : 10の位
lea LedS0H(pc),a0
lsl.w #4,d1
adda.w d1,a0
move.l (a0)+,d0
ror.l #4,d0
and.l d0,(a1)+
move.l (a0)+,d0
ror.l #4,d0
and.l d0,(a1)+
move.l (a0)+,d0
ror.l #4,d0
and.l d0,(a1)+
move.l (a0)+,d0
ror.l #4,d0
and.l d0,(a1)+
swap d1
or.w #$030,d1
bra SetHanFontR
SuziLed2:*------------------------------------------------
*
* Prog.数字表示
* d0=数字
*
move.l d0,_Ledprg
move.l d0,d3
lea _LEDBUF+3*16(pc),a1
moveq #'P',d1
bsr SetQurtFontR
cmpi.l #100,d3
bcc @f
*====== 99まで
move.l d3,d1
divu #10,d1 * 1の位 : 10の位
or.l #$00300030,d1
bsr SetQurtFontR
swap d1
bsr SetQurtFontR
moveq #'=',d1
bra SetQurtFontR
*rts
@@: *======100~
move.l d3,d1
divu #100,d1 * 100の位
or.w #$0030,d1
bsr SetQurtFontR
swap d1
andi.l #$0000FFFF,d1
divu #10,d1 * 1の位 : 10の位
or.l #$00300030,d1
bsr SetQurtFontR
swap d1
bra SetQurtFontR
*rts
SuziLed3:*------------------------------------------------
*
* TIME 数字表示
* d0=MMM:SS:FF
*
move.l d0,_Ledtim
move.l d0,d3
lea _LEDBUF+1*16+8(pc),a1
andi.l #$0FFFFFFF,d0
cmpi.l #$00640000,d0
bcc @f
*======ノーマル MM:SS:FF
move.l d0,d1
swap d1
andi.l #$00FF,d1
divu #10,d1 * 1の位 : 10の位
or.l #$00300030,d1
bsr SetQurtFontR
swap d1
bsr SetQurtFontR
moveq #':',d1
bsr SetQurtFontR
move.l d3,d1
lsr.l #8,d1
andi.l #$00FF,d1
divu #10,d1 * 1の位 : 10の位
or.l #$00300030,d1
bsr SetQurtFontR
swap d1
bra SetQurtFontR
*rts
@@: *======オーバー MMM:SS:F
move.l d3,d1
swap d1
andi.l #$0FFF,d1
divu #100,d1 * 100の位
or.w #$0030,d1
bsr SetQurtFontR
swap d1
andi.l #$0FF,d1
divu #10,d1 * 1の位 : 10の位
or.l #$00300030,d1
bsr SetQurtFontR
swap d1
bsr SetQurtFontR
moveq #':',d1
bsr SetQurtFontR
move.l d3,d1
lsr.l #8,d1
andi.l #$00FF,d1
divu #10,d1 * 1の位 : 10の位
or.l #$00300030,d1
bsr SetQurtFontR
rts
SuziLed4:*------------------------------------------------
*
* _LEDTMRV対応.TIME 数字表示
* d0=MMM:SS:FF
*
*ori.l #$8000_0000,_Ledflg *LEDその他の状態
move.l d0,d3
tst.w _JukeBox *0:ノーマル 1:JukeBox
beq @f
andi.w #1,_LEDTMRV *トータル表示を無しに。
@@:
move.w d0,SL4_tim
move.w _LEDTMRV,d1
beq SuziLed3 *そのまま
subq.w #1,d1
bne @f
**リバース
move.l d0,-(sp)
move.l _plyinf+16,-(sp)
bsr _subtime
addq.l #8,sp
move.w d0,SL4_tim
bra SuziLed3
@@:
subq.w #1,d1
bne @f
**トータル
pea SL4_wrk(pc)
jbsr _ProgTimeCalc
*addq.l #4,sp
move.l d3,-(sp)
move.l SL4_wrk+4(pc),-(sp)
jbsr _addtime_
*addq.l #8,sp
lea 8+4(sp),sp
move.w d0,SL4_tim
bra SuziLed3
@@:
**トータルリバース
pea SL4_wrk(pc)
jbsr _ProgTimeCalc
*addq.l #4,sp
move.l d3,-(sp)
move.l SL4_wrk+4(pc),-(sp)
jbsr _addtime_
*addq.l #8,sp
move.l d0,-(sp)
move.l SL4_wrk(pc),-(sp)
jbsr _subtime__
*addq.l #8,sp
lea 8+8+4(sp),sp
move.w d0,SL4_tim
bra SuziLed3
SL4_wrk:
.dc.l 0
.dc.l 0
SL4_tim:
.dc.w 0
ViewName:*-------------------------------------------
*ファンクバーにタイトル
* d0=曲ナンバー 0;ならCD名を
* d6=MSF オフセット値
*
andi.l #$00FFFF,d0
move.l d0,d7
bne VN_L1
**CD名
tst.w _JukeBox
beq @f
lea JcBxDisp(pc),a1
clr.l -(sp)
bra VN_L3
@@:
lea _CdName(pc),a1
clr.l -(sp)
bra VN_L3
VN_L1:
move.l d6,-(sp)
move.l d7,-(sp)
bsr _NamePoint
addq.l #8,sp
movea.l d0,a1
move.l _pListStTm,a0
asl.l #2,d7
move.l (a0,d7.l),-(sp)
VN_L3:
tst.b (a1)
bne @f
lea VN_LR(pc),a1
@@: move.l a1,-(sp)
bsr _SetNameLed
addq.l #8,sp
rts
CdcTitle_:*----------------------------------------
* bsr _CDROM_chk
* cmpi.l #-3,d0
* bne @f
* bsr _CDCOFF
*@@:
CdcTitle:*----------------------------------------
lea _LEDBUF+4*16(pc),a1
moveq #'N',d1
bsr SetQurtFontR
moveq #'O',d1
bsr SetQurtFontR
adda.l #16,a1
moveq #'C',d1
bsr SetHanFontR
moveq #'D',d1
bsr SetHanFontR
lea _LEDBUF+1*16+8(pc),a1
moveq #'-',d1
bsr SetQurtFontR
bsr SetQurtFontR
moveq #':',d1
bsr SetQurtFontR
moveq #'-',d1
bsr SetQurtFontR
bsr SetQurtFontR
clr.b _CdName
clr.l -(sp)
pea NoCdDisp(pc)
bsr _SetNameLed
addq.l #8,sp
rts
SetHanFontR:*----------------------------------------
*
* d1=きゃら
* a1=書き込みアドレス
*[戻り]a1が次のアドレス
move.l d1,-(sp)
lsl.w #4,d1 * x16
movea.l HanRomAdd,a0
adda.w d1,a0
move.l (a0)+,d0
not.l d0
and.l d0,(a1)+
move.l (a0)+,d0
not.l d0
and.l d0,(a1)+
move.l (a0)+,d0
not.l d0
and.l d0,(a1)+
move.l (a0)+,d0
not.l d0
and.l d0,(a1)+
move.l (sp)+,d1
rts
SetQurtFontR:*----------------------------------------
* 8x8きゃら
* d1=きゃら
* a1=書き込みアドレス
*[戻り]a1が次のアドレス
move.l d1,-(sp)
lea $00f3a000,a0
lsl.w #3,d1
adda.w d1,a0
move.l (a0)+,d0
not.l d0
and.l d0,(a1)+
move.l (a0)+,d0
not.l d0
and.l d0,(a1)+
addq.l #8,a1
move.l (sp)+,d1
rts
*----------------------------------------
.globl _SetFont,_SetFont1b,_SetSp
_SetFont:
**
* SetFont(ad,f)
* char *ad; 書き込みアドレス
* int f; 漢字コード
* [戻り値] xバイト
**
move.l 8(sp),d1
beq _SetSp
moveq #8,d2
*IOCS _FNTADR
movea.l $400+_FNTADR*4,a0
jsr (a0)
movea.l d0,a0
movea.l 4(sp),a1
tst.w d1
beq SF8
*fn16
moveq #15,d0
@@: move.b (a0)+,(a1)
move.b (a0)+,16(a1)
addq.l #1,a1
dbra d0,@b
moveq #2,d0
rts
SF8: **fn8
move.l (a0)+,(a1)+
move.l (a0)+,(a1)+
move.l (a0)+,(a1)+
move.l (a0),(a1)
moveq #1,d0
rts
_SetFont1b:
**
* SetFont(ad,f)
* char *ad; 書き込みアドレス
* int f; 0~255 文字コード
* [戻り値] xバイト
**
move.l 8(sp),d1
lsl.w #4,d1 * x16
movea.l HanRomAdd,a0
adda.w d1,a0
movea.l 4(sp),a1
move.l (a0)+,(a1)+
move.l (a0)+,(a1)+
move.l (a0)+,(a1)+
move.l (a0),(a1)
moveq #1,d0
rts
_SetSp:
**
* SetSp(ad)
* char *ad; 書き込みアドレス
* [戻り値] xバイト
**
moveq #0,d0
movea.l 4(sp),a1
move.l d0,(a1)+
move.l d0,(a1)+
move.l d0,(a1)+
move.l d0,(a1)
moveq #1,d0
rts
*SetLedPat:*----------------------------------------
* *
* * a1=LedPatAdd
* * a0=LEDBUF
* *
* move.l (a1)+,(a0)+
* move.l (a1),(a0)
* rts
********************************************
LedPlay:
.dc.b %11111111
.dc.b %10111111
.dc.b %10001111
.dc.b %10000011
.dc.b %10000001
.dc.b %10000011
.dc.b %10001111
.dc.b %10111111
.even
LedStop:
.dc.b %11111111
.dc.b %11111111
.dc.b %10000001
.dc.b %10000001
.dc.b %10000001
.dc.b %10000001
.dc.b %10000001
.dc.b %11111111
.even
LedPause:
.dc.b %11111111
.dc.b %11111111
.dc.b %10011001
.dc.b %10011001
.dc.b %10011001
.dc.b %10011001
.dc.b %10011001
.dc.b %11111111
.even
LedLoop:
.dc.b %11111111
.dc.b %11001111
.dc.b %10111111
.dc.b %10111111
.dc.b %10110111
.dc.b %11000011
.dc.b %11110111
.dc.b %11111111
.even
LedRept:
.dc.b %11101111
.dc.b %11000011
.dc.b %10101101
.dc.b %10111101
.dc.b %10110101
.dc.b %11000011
.dc.b %11110111
.dc.b %11111111
.even
LedMem:
.dc.b %11111111
.dc.b %10000111
.dc.b %10111011
.dc.b %10111011
.dc.b %10000111
.dc.b %10111111
.dc.b %10111111
.dc.b %11111111
.even
LedRand:
.dc.b %11111111
.dc.b %10000111
.dc.b %10111011
.dc.b %10111011
.dc.b %10100111
.dc.b %10110011
.dc.b %10111011
.dc.b %11111111
.even
LedBgm:
.dc.b %11111111
.dc.b %10000111
.dc.b %10111011
.dc.b %10000111
.dc.b %10111011
.dc.b %10111011
.dc.b %10000111
.dc.b %11111111
.even
LedFF:
.dc.b %11111111
.dc.b %10110111
.dc.b %11011011
.dc.b %11101101
.dc.b %11110110
.dc.b %11101101
.dc.b %11011011
.dc.b %10110111
.even
LedREW: .dc.b %11111111
.dc.b %11110110
.dc.b %11101101
.dc.b %11011011
.dc.b %10110111
.dc.b %11011011
.dc.b %11101101
.dc.b %11110110
.even
LedRev:
.dc.b %11111111
.dc.b %11111111
.dc.b %10011111
.dc.b %10101111
.dc.b %10011010
.dc.b %10101010
.dc.b %10101101
.dc.b %11111111
.even
LedTot:
.dc.b %11111111
.dc.b %11111111
.dc.b %10001111
.dc.b %11011001
.dc.b %11010110
.dc.b %11010110
.dc.b %11011001
.dc.b %11111111
.even
LedTotRev:
.dc.b %11111111
.dc.b %11111111
.dc.b %10001001
.dc.b %11011010
.dc.b %11011001
.dc.b %11011010
.dc.b %11011010
.dc.b %11111111
.even
LedNoAudio:
.dc.b %11111111
.dc.b %10001000
.dc.b %11000101
.dc.b %11000111
.dc.b %11100011
.dc.b %10100011
.dc.b %00010001
.dc.b %11111111
.even
*nul
.dc.b %11111111
.dc.b %11111111
.dc.b %11111111
.dc.b %11111111
.dc.b %11111111
.dc.b %11111111
.dc.b %11111111
.dc.b %11111111
.dc.b %11111111
.dc.b %11111111
.dc.b %11111111
.dc.b %11111111
.dc.b %11111111
.dc.b %11111111
.dc.b %11111111
.dc.b %11111111
.even
LedS0H:
.dc.b %11111111
.dc.b %00011111
.dc.b %01011111
.dc.b %01011111
.dc.b %01011111
.dc.b %01011111
.dc.b %01011111
.dc.b %01011111
.dc.b %01011111
.dc.b %01011111
.dc.b %01011111
.dc.b %01011111
.dc.b %01011111
.dc.b %00011111
.dc.b %11111111
.dc.b %11111111
.even
LedS1H:
.dc.b %11111111
.dc.b %10111111
.dc.b %00111111
.dc.b %10111111
.dc.b %10111111
.dc.b %10111111
.dc.b %10111111
.dc.b %10111111
.dc.b %10111111
.dc.b %10111111
.dc.b %10111111
.dc.b %10111111
.dc.b %10111111
.dc.b %00011111
.dc.b %11111111
.dc.b %11111111
.even
LedS2H:
.dc.b %11111111
.dc.b %00111111
.dc.b %01011111
.dc.b %11011111
.dc.b %11011111
.dc.b %11011111
.dc.b %11011111
.dc.b %11011111
.dc.b %11011111
.dc.b %10111111
.dc.b %01111111
.dc.b %01111111
.dc.b %01111111
.dc.b %00011111
.dc.b %11111111
.dc.b %11111111
.even
LedS3H:
.dc.b %11111111
.dc.b %00111111
.dc.b %01011111
.dc.b %11011111
.dc.b %11011111
.dc.b %11011111
.dc.b %11011111
.dc.b %00111111
.dc.b %11011111
.dc.b %11011111
.dc.b %11011111
.dc.b %11011111
.dc.b %01011111
.dc.b %00111111
.dc.b %11111111
.dc.b %11111111
.even
LedS4H:
.dc.b %11111111
.dc.b %01111111
.dc.b %01011111
.dc.b %01011111
.dc.b %01011111
.dc.b %01011111
.dc.b %01011111
.dc.b %01011111
.dc.b %01011111
.dc.b %01011111
.dc.b %00011111
.dc.b %11011111
.dc.b %11011111
.dc.b %11011111
.dc.b %11111111
.dc.b %11111111
.even
LedS5H:
.dc.b %11111111
.dc.b %00011111
.dc.b %01111111
.dc.b %01111111
.dc.b %01111111
.dc.b %01111111
.dc.b %00011111
.dc.b %11011111
.dc.b %11011111
.dc.b %11011111
.dc.b %11011111
.dc.b %11011111
.dc.b %11011111
.dc.b %00111111
.dc.b %11111111
.dc.b %11111111
.even
LedS6H:
.dc.b %11111111
.dc.b %10011111
.dc.b %01111111
.dc.b %01111111
.dc.b %01111111
.dc.b %01111111
.dc.b %00111111
.dc.b %01011111
.dc.b %01011111
.dc.b %01011111
.dc.b %01011111
.dc.b %01011111
.dc.b %01011111
.dc.b %10011111
.dc.b %11111111
.dc.b %11111111
.even
LedS7H:
.dc.b %11111111
.dc.b %00011111
.dc.b %11011111
.dc.b %11011111
.dc.b %11011111
.dc.b %11011111
.dc.b %10111111
.dc.b %10111111
.dc.b %10111111
.dc.b %10111111
.dc.b %01111111
.dc.b %01111111
.dc.b %01111111
.dc.b %01111111
.dc.b %11111111
.dc.b %11111111
.even
LedS8H:
.dc.b %11111111
.dc.b %00011111
.dc.b %01011111
.dc.b %01011111
.dc.b %01011111
.dc.b %01011111
.dc.b %00011111
.dc.b %01011111
.dc.b %01011111
.dc.b %01011111
.dc.b %01011111
.dc.b %01011111
.dc.b %01011111
.dc.b %00011111
.dc.b %11111111
.dc.b %11111111
.even
LedS9H:
.dc.b %11111111
.dc.b %00011111
.dc.b %01011111
.dc.b %01011111
.dc.b %01011111
.dc.b %01011111
.dc.b %01011111
.dc.b %00011111
.dc.b %11011111
.dc.b %11011111
.dc.b %11011111
.dc.b %11011111
.dc.b %11011111
.dc.b %11011111
.dc.b %11111111
.dc.b %11111111
.even